06. 查看特定的 commit

太多滚动操作

上一部分的最后几个练习需要在补丁输出中不断向下滚动,以便找到正确的 commit 并查看其信息。如果能显示特定 commit 的详情,而不用关心仓库中的所有其他内容,是不是很棒?

实际上有两种实现方式!

  • git log 提供你要查看的 commit 的 SHA

  • 使用新的 git show 命令

它们都很简单,我们先学习 git log 方式,然后再学习 git show

你已经知道如何使用以下命令输出信息:

  • git log

  • git log --oneline

  • git log --stat

  • git log -p

但是你是否知道,可以向所有这些命令提供 commit 的 SHA 作为最后一个参数?例如:

$ git log -p fdf5493

通过提供 SHA, git log -p 命令将从这条 commit 开始!无需滚动并逐条查阅!注意,它还会显示在所提供的 SHA 之前提交的所有 commit 信息。

新命令: git show

另一个显示特定 commit 的命令是 git show

$ git show

运行上述示例命令将仅显示最近的 commit。通常,将 SHA 作为最后一个参数提供给命令:

$ git show fdf5493

git show 的作用是?

git show 命令将仅显示一个 commit。因此,如果你看不到任何其他 commit,不要惊慌。它只显示一个 commit。 git show 命令的输出和 git log -p 命令的完全一样。因此默认情况下, git show 会显示:

  • commit
  • 作者
  • 日期
  • commit 消息
  • 补丁信息

但是, git show 可以与我们了解过的大部分其他选项一起使用:

  • --stat - 显示更改了多少文件,以及添加/删除的行数

  • -p --patch - 显示默认补丁信息,但是如果使用了 --stat ,将不显示补丁信息,因此传入 -p 以再次添加该信息

  • -w - 忽略空格变化

你现在已经是 git log 达人了!试着求解几道练习题吧。

添加了多少个规则集?

commit 8d3ea36 向 CSS 中添加了多少个规则集?

SOLUTION: 2

更改了多少个文件?

有一个消息是"Convert social links from text to images"的 commit。这条 commit 更改了多少个文件?

SOLUTION: 5 个文件

添加了什么级别的标题?

看看 commit fdf5493 。这条 commit 所添加的首个 HTML 标题元素是什么?

SOLUTION: 一个 `

`